<html>
<head>

<title>Help - RSA Education Cryptosystem</title>

<meta name="author" content="Petri Tuononen, Jukka Tuominen, Jani Kirsi">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 

<base href="ohje.html">

</head>
<body>

<font size="2" face="Verdana">

<h1>RSA Education Cryptosystem</h1>

<ul>
    <li>Authors: Petri Tuononen, Jukka Tuominen, Jani Kirsi.
    </li>
    <li>Date: 27.02.2009
    </li>
    <li>Version: 1.0
    </li>
    <li>Info: This software is a part of OOP course work at Turku University of Applied Sciences.
	<br>
        The RSA encryption/decryption software is mainly aimed for educational use to teach cryptography.
    </li>
    <li>GPL lisence: This software can be used/modified/redistibuted freely.
    </li>
    <li>No warranties of any kind. You use this software with your own responsibility.
    </li>
    <li>Feedback: petri.tuononen@students.turkuamk.fi
    </li>
</ul>

<p>
Short description:
<br>
RSA cryptosystem for educational use to teach and learn cryptography. Every step that is executed
by the cryptosystem is visible (printed lines). User can choose his/her own custom primes and
public exponent to create keys and then choose from three types of padding schemes to encrypt a message.
Encryption/decryption steps are then printed on the screen and the user can learn how the crypting process is
done mathematically. User can test if his/her encryption/decryption with pen and paper is correctly done.
Great for teachers who teach cryptography and students desiring to learn.
</p>

<h1>Contents</h1>

<ol>
    <li>User requirements</li>
    <li>Features</li>
</ol>


<h1>User requirements</h1>
<p>
You must install Java JRE (Java Runtime Environment) 5 or newer to your system. It can be downloaded from www.java.com/getjava/.
</p>
<p>
To start the program just click Rsa.jar file.
</p>

<h1>Features</h1>
<p>
The program is designed to be as easy to use as possible. It is still a good idea to go through every feature.
</p>

<p><b>Modes</b></p>
<p>
The program has two modes to choose from. They are Teach and Secure mode.
</p>
<p>
Teach mode:
<br>
Teach mode is aimed for teaching and learning and primes and public exponent must be given by user. RSA execution
(encrypting/decrypting) lines are also printed on the screen.
</p>
<p>
Secure mode:
<br>
Secure mode differs from teach mode so that user can't see primes or other information regarding to keys. User defines
bitsize for keys and presses "Create keys" and that's all. Keys are generated by computer and bitsize refers to prime p and q bitsizes.  
RSA execution prints only cryptotext on the screen. This mode's function is that the program can be used for real and secure message encrypting/decrypting.
</p>

<p><b>Public and private keys</b></p>
<p>
Public Key:
<br>
Public key is a distributable key. It can be given to any person you want to receive encrypted messages from. Public key can be distributed using 
unsecure channels and in fact that's the whole point of it. Encrypted message can also be send using unsecure channels.
</p>
<p>
Private key:
<br>
Private key is a nondistributable key. You keep it for yourself. By any means distributing the private key is not a good idea unless you want that
somebody else is able to decrypt and read messages written for you.
</p>

<p><b>Key creation</b></p>
<p>
Key creation operates differently depending on chosen mode. In teach mode keys are created according to user input (primes p and q, public exponent)
so that modulus and private exponent are generated by the cryptosystem. In secure mode user defines bitsize and keys are generated without any other
information. 
</p>

<p><b>Save/load keys</b></p>
<p>
After keys have been created it is possible to save either a public key or a private key to a file. The keys are saved securely. Information that key
constains is not possible to retrieve from the created file without this spesific program. By saving keys you are able to use the same keys some
another time by loading them. This also saves time when creating large bitsize keys. Public key's function is that it is send to a person who wants
to send encrypted messages for you. After receiving an encrypted message you in turn can decrypt the message by using a matching private key.
<br>
The keys can also be loaded that you can retrieve your saved keys. In teach mode you can see all key information. In secure mode you can't see.
</p>

<p><b>Writing a message</b></p>
<p>
It is only possible to use English alphabets (a-z) when writing a message. No other characters are supported. Also bear in mind that after the message
has been encrypted as a cryptotext the alphabets are all capitalized. Practically that means when the cryptotext is decrypted the end result (plaintext)
is also capitalized. Due to this fact there are no reason to bother writing case sensitive messages.
</p>

<p><b>Padding schemes</b></p>
<p>
There are three types of padding schemes to choose from.</p>
<p>All three padding  schemes use the old system to  encode the English alphabet: A = 00, B = 01, C = 02, D = 03, E = 04, &hellip;, Z = 25.</p>
</font>
<p>One letter:<br>
  Simply  converts letters to numbers and calculates each number individually. So n &gt; 25 is  required.</p>
<p>Two  letters:<br>
  This method divides  the sequence into blocks of four digits. Biggest possible number is now 2525,  so n &gt; 2525 is required.</p>
<p>Three letters:<br>
  This will group the characters into  blocks of three and compute a message representative integer for each block. So n &gt; 17575 is required.</p>

<p><b>Encrypt/Decrypt</b></p>
<p>
Message can be encrypted if keys are created and message written. In teach mode all mathematical formulas are seen. In secure mode only cryptotext is
visible. Decrypting does everything in reverse. Again every mathematical formula is seen on teach mode and only plaintext in secure mode.
</p>

<p><b>Execution</b></p>
<p>
In execution area all mathematical formulas are printed when on teach mode. 
</p>

<p><b>Full screen</b></p>
<p>
Full screen button opens a new window containing same execution data that is found from main window's execution field.
</p>

</font>

</body>
</html>